package math.geom3d;

import math.base.Point3d;
import math.base.Vector3d;
import math.geomUtils.SurfaceType;

/**
 * @author Saga
 *
 */
public final class ConicalSurface3d extends ElementarySurface3d {

    @Override
    public final SurfaceType getSurfaceType() {
        return SurfaceType.CONICAL_SURFACE;
    }

    @Override
    public final void uReverse() {

    }

    @Override
    public final Surface3d uReversed() {
        return null;
    }

    @Override
    public final void vReverse() {

    }

    @Override
    public final Surface3d vReversed() {
        return null;
    }

    @Override
    public final boolean isUPeriodic() {
        return false;
    }

    @Override
    public final double getUPeriod() {
        return 0;
    }

    @Override
    public final boolean isVPeriodic() {
        return false;
    }

    @Override
    public final double getVPeriod() {
        return 0;
    }

    @Override
    public final double getUFirstParameter() {
        return 0;
    }

    @Override
    public final double getULastParameter() {
        return 0;
    }

    @Override
    public final double getVFirstParameter() {
        return 0;
    }

    @Override
    public final double getVLastParameter() {
        return 0;
    }

    @Override
    public final Point3d calcValue(final double _uParam, final double _vParam) {
        return null;
    }

    @Override
    public final Vector3d calcDerivativeU(final double _uParam, final double _vParam) {
        return null;
    }

    @Override
    public final Vector3d calcDerivativeV(final double _uParam, final double _vParam) {
        return null;
    }

    @Override
    public final void calcDerivative(final double _uParam, final double _vParam,
            final Vector3d _derU,
            final Vector3d _derV) {

    }

    @Override
    public final Vector3d calcDerivativeN(final double _uParam, final double _vParam,
            final int _uOrder,
            final int _vOrder) {
        return null;
    }

    @Override
    public final void calcValueAndDerivative1(final double _uParam, final double _vParam,
            final Point3d _pt, final Vector3d _derU,
            final Vector3d _derV) {

    }

    @Override
    public final void calcValueAndDerivative2(final double _uParam, final double _vParam,
            final Point3d _pt,
            final Vector3d _der1U, final Vector3d _der1V, final Vector3d _der2U,
            final Vector3d _der2V, final Vector3d _der2UV) {

    }

    @Override
    public final void calcValueAndDerivative3(final double _uParam, final double _vParam,
            final Point3d _pt,
            final Vector3d _der1U, final Vector3d _der1V, final Vector3d _der2U,
            final Vector3d _der2V, final Vector3d _der2UV,
            final Vector3d _der3U, final Vector3d _der3V, final Vector3d _der3UUV,
            final Vector3d _der3UVV) {

    }

    @Override
    public final Curve3d calcUISOCurve(final double _param) {
        return null;
    }

    @Override
    public final Curve3d calcVISOCurve(final double _param) {
        return null;
    }

    @Override
    public final ConicalSurface3d clone() {
        return null;
    }
}
